package com.navigation.dao.hibernate;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.navigation.dao.UserDao;
import com.navigation.model.User;

public class UserDaoHibernateImpl extends HibernateDaoSupport implements UserDao {
	 /**
     * 根据用户名，密码查找用户
     * @param name 查询所需的用户名
     * @param pass 查询所需的密码
     * @return 对应的用户
     */ 
	public User findUserByNameAndPass(String name, String pass) {
		// TODO Auto-generated method stub
		 List<User> ul = getHibernateTemplate().find("from User au where au.name = ? and au.pass = ?" ,	new String[]{name , pass});
     if (ul != null && ul.size() >= 1)
     {
         return (User)ul.get(0);
     }
     return null;
	}
	  /**
     * 根据id查找用户
     * @param id 需要查找的用户id
     */  
    public User get(int id)
    {
        return (User)getHibernateTemplate().get(User.class , id);
    }

    /**
     * 增加用户
     * @param user 需要增加的用户
     */       
    public void save(User user)
    {
        getHibernateTemplate().save(user);
    }

    /**
     * 修改用户
     * @param user 需要修改的用户
     */  
    public void update(User user)
    {
        getHibernateTemplate().saveOrUpdate(user);
    }

    /**
     * 删除用户
     * @param id 需要删除的用户id
     */  
    public void delete(int id)
    {
        getHibernateTemplate().delete(getHibernateTemplate().get(User.class , id));
    }

    /**
     * 删除用户
     * @param user 需要删除的用户
     */  
    public void delete(User user)
    {
        getHibernateTemplate().delete(user);
    }

    /**
     * 查询全部用户
     * @return 获得全部用户
     */ 
    public List<User> findAll()
    {
        return (List<User>)getHibernateTemplate().find("from User");
    }
   

    /**
     * 根据用户名查找用户
     * @param user 查询所需的用户名
     * @return 对应的用户
     */ 
    public User findUserByName(String user)
	{
        List ul = getHibernateTemplate().find("from User au where au.user = ?" , user);
        if (ul != null && ul.size() >= 1)
        {
            return (User)ul.get(0);
        }
        return null;
	}

}
